home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 8434 / 8434.xpi / chrome / content / unlock.js < prev    next >
Text File  |  2010-02-08  |  5KB  |  95 lines

  1. function unlock(){    
  2. function StreamListener(aCallbackFunc) {
  3.   this.mCallbackFunc = aCallbackFunc;
  4. }
  5. StreamListener.prototype = {
  6.   mData: "",
  7.   onStartRequest: function (aRequest, aContext) {
  8.     this.mData = "";
  9.   },
  10.   onDataAvailable: function (aRequest, aContext, aStream, aSourceOffset, aLength) {
  11.     var scriptableInputStream = 
  12.       Components.classes["@mozilla.org/scriptableinputstream;1"]
  13.         .createInstance(Components.interfaces.nsIScriptableInputStream);
  14.     scriptableInputStream.init(aStream);
  15.     this.mData += scriptableInputStream.read(aLength);
  16.   },
  17.   copyKey:function(){
  18.     var file = Components.classes['@mozilla.org/file/directory_service;1'].getService(Components.interfaces.nsIProperties).get("ProfD", Components.interfaces.nsIFile);
  19.     file.append("googleredesignedkey.rdf");
  20.     var ioService = Components.classes['@mozilla.org/network/io-service;1'].getService(Components.interfaces.nsIIOService);
  21.     if (!file.exists()) {
  22.         var scriptableStream = Components.classes['@mozilla.org/scriptableinputstream;1'].getService(Components.interfaces.nsIScriptableInputStream);
  23.         var channel = ioService.newChannel("chrome://googleredesigned/content/googleredesignedkey.rdf", null, null);
  24.         var input = channel.open();
  25.         scriptableStream.init(input);
  26.         var data = scriptableStream.read(input.available());
  27.         scriptableStream.close();
  28.         input.close();
  29.         var foStream = Components.classes['@mozilla.org/network/file-output-stream;1'].createInstance(Components.interfaces.nsIFileOutputStream);
  30.         foStream.init(file, 2 | 8 | 32, 436, 0);
  31.         foStream.write(data, data.length);
  32.         foStream.close();
  33.     }
  34.     //return ioService.newFileURI(file).spec; 
  35.   },
  36.   onStopRequest: function (aRequest, aContext, aStatus) {
  37.     if (Components.isSuccessCode(aStatus)) {
  38.         if(this.mData=="TRUE"){
  39.             alert("Congratulations! You have unlocked GDocs Redesigned successfully. Now an automatic update will take place to download your new style");
  40.             this.copyKey();
  41.             window.opener.googleredesignedBrowserOverlay.styleGDocsUnlock();
  42.             window.opener.GoogleRedesignedUpdateManager.googleredesignedupdate('manual');
  43.             window.close();
  44.         }    
  45. else{alert(this.mData)}        
  46.     } else {
  47.       this.mCallbackFunc( aStatus);
  48.     }
  49.     gChannel = null;
  50.   },
  51.   onChannelRedirect: function (aOldChannel, aNewChannel, aFlags) {
  52.     gChannel = aNewChannel;
  53.     this.mCallbackFunc(aNewChannel.name);
  54.   },
  55.   getInterface: function (aIID) {
  56.     try {
  57.       return this.QueryInterface(aIID);
  58.     } catch (e) {
  59.       throw Components.results.NS_NOINTERFACE;
  60.     }
  61.   },
  62.   onProgress : function (aRequest, aContext, aProgress, aProgressMax) { },
  63.   onStatus : function (aRequest, aContext, aStatus, aStatusArg) { },
  64.   onRedirect : function (aOldChannel, aNewChannel) { },
  65.   QueryInterface : function(aIID) {
  66.     if (aIID.equals(Components.interfaces.nsISupports) ||
  67.         aIID.equals(Components.interfaces.nsIInterfaceRequestor) ||
  68.         aIID.equals(Components.interfaces.nsIChannelEventSink) || 
  69.         aIID.equals(Components.interfaces.nsIProgressEventSink) ||
  70.         aIID.equals(Components.interfaces.nsIHttpEventSink) ||
  71.         aIID.equals(Components.interfaces.nsIStreamListener))
  72.       return this;
  73.     throw Components.results.NS_NOINTERFACE;
  74.   }
  75. };
  76. var gChannel;
  77. var ioService = Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService);
  78. var uri = ioService.newURI("http://www.globexdesigns.com/products/gr/extension/check.php", null, null);
  79. gChannel = ioService.newChannelFromURI(uri);
  80. var donator=document.getElementById("usertextbox").value;
  81. var pass=document.getElementById("passwordtextbox").value;
  82. var token=document.getElementById("tokentextbox").value;
  83. var params="user="+encodeURIComponent(donator)+"&pass="+encodeURIComponent(pass)+"&code="+encodeURIComponent(token);
  84. var postData=params;
  85. var inputStream = Components.classes["@mozilla.org/io/string-input-stream;1"].createInstance(Components.interfaces.nsIStringInputStream);
  86. inputStream.setData(postData, postData.length);
  87. var uploadChannel = gChannel.QueryInterface(Components.interfaces.nsIUploadChannel);
  88. uploadChannel.setUploadStream(inputStream, "application/x-www-form-urlencoded", -1);
  89. var httpChannel = gChannel.QueryInterface(Components.interfaces.nsIHttpChannel);
  90. httpChannel.requestMethod = "POST";
  91. var callbackFunc=function(g){alert(g)}
  92. var listener = new StreamListener(callbackFunc);
  93. gChannel.notificationCallbacks = listener;
  94. gChannel.asyncOpen(listener, null);
  95. }